home *** CD-ROM | disk | FTP | other *** search
- TABLE OF CONTENTS
-
- BST_System/BeastLibrary
- BeastLibrary/BST_AddClass
- BeastLibrary/BST_ApplyTagChanges
- BeastLibrary/BST_CloneTagItems
- BeastLibrary/BST_FindTagItem
- BeastLibrary/BST_FreeClass
- BeastLibrary/BST_FreeTagItems
- BeastLibrary/BST_MakeClass
- BeastLibrary/BST_MakeSubClass
- BeastLibrary/BST_NextTagItem
- BeastLibrary/BST_RemoveClass
- BeastLibrary/CLSS_AddMethod
- BeastLibrary/CLSS_DisposeMethod
- BeastLibrary/CLSS_FindMethod
- BeastLibrary/OBJ_CreateConnection
- BeastLibrary/OBJ_DestroyObject
- BeastLibrary/OBJ_DisposeObject
- BeastLibrary/OBJ_DoMethod
- BeastLibrary/OBJ_FromInput
- BeastLibrary/OBJ_MethodToChildren
- BeastLibrary/OBJ_MethodToParent
- BeastLibrary/OBJ_NewObject
- BeastLibrary/OBJ_RemoveConnection
- BeastLibrary/OBJ_ToOutput
- BST_System/BeastLibrary
-
- NAME
- BeastLibrary -- Library for BEAST. (V1 Alpha)
-
- COPYRIGHT
- Maverick Software Development
-
- FUNCTION
- The BEAST engine.
-
- AUTHOR
- Jacco van Weert
-
- CREATION DATE
- 23-Apr-95
-
- MODIFICATION HISTORY
- 27-Mar-96: First release, V1 Alpha.
-
- NOTES
-
-
- BeastLibrary/BST_AddClass
-
- NAME
- BST_AddClass -- Add a Beast class to the class list. (V1 Alpha)
-
- SYNOPSIS
- AddClass( Class )
- A0
- void BST_AddClass( struct BST_Class * );
-
- FUNCTION
- Add the Beast class to the Beast system.
-
- INPUTS
- Class - Pointer to the class.
-
- SEE ALSO
- BST_RemoveClass, BST_MakeClass
-
-
- BeastLibrary/BST_ApplyTagChanges
-
- NAME
- BST_ApplyTagChanges -- (V1 Alpha)
-
- SYNOPSIS
- BST_ApplyTagChanges( list, changeList )
- A0 A1
-
- FUNCTION
- <Same as in the utility.library>
-
- NOTES
- This routine is subject to change
-
-
- BeastLibrary/BST_CloneTagItems
-
- NAME
- BST_CloneTagItems -- (V1 Alpha)
-
- SYNOPSIS
- clone = BST_CloneTagItems( original )
- D0 A0
-
- FUNCTION
- <Same as in the utility.library>
-
- NOTES
- This routine is subject to change
-
-
- BeastLibrary/BST_FindTagItem
-
- NAME
- BST_FindTagItem -- (V1 Alpha)
-
- SYNOPSIS
- Result = BST_FindTagItem( tagValue, tagList )
- D0,A0 D0 A0
- struct TagItem *BST_FindTagItem( ULONG, struct TagItem * );
-
- FUNCTION
- Same functionallity as the utility.library equivalent, added are
- special handling functions for the BEAST tags.
-
-
- BeastLibrary/BST_FreeClass
-
- NAME
- BST_FreeClass -- Free a Beast class. (V1 Alpha)
-
- SYNOPSIS
- BST_FreeClass( Class )
- A0
- void BST_FreeClass( struct BST_Class );
-
- FUNCTION
- Free the Beast class from the memory. Also deallocate all class related
- stuff. Such as the methods lists.
-
- INPUTS
- Class - Pointer to the class.
-
- NOTES
- Before this routine BST_RemoveClass must be called.
-
- BUGS
- No check if the Class is still in use.
-
- SEE ALSO
- BST_RemoveClass, BST_MakeClass
-
-
- BeastLibrary/BST_FreeTagItems
-
- NAME
- BST_FreeTagItems -- (V1 Alpha)
-
- SYNOPSIS
- BST_FreeTagItems( taglist )
- A0
-
- FUNCTION
- <Same as in the utility.library>
-
- NOTES
- This routine is subject to change
-
-
- BeastLibrary/BST_MakeClass
-
- NAME
- BST_MakeClass -- Make a Beast class. (V1 Alpha)
-
- SYNOPSIS
- Result = BST_MakeClass( ClassID, InstanceSize )
- D0 A0 D0
- struct BST_Class *BST_MakeClass( char *, ULONG );
-
- FUNCTION
- Defines a new public class, BST_AddClass must be called to add
- the class to the BEAST system.
-
- INPUTS
- ClassID - Class ID, pointer to the public-name.
- Please choose this name carefully, otherwise a
- conflict may occur.
- Beast classes always are starting with a 'B'.
- BST_, BVS_, BFS_, ..etc..
-
- InstanceSize - The Instance size in bytes.
-
- RESULT
- Result - The created class
-
- SEE ALSO
- BST_FreeClass, BST_AddClass
-
-
- BeastLibrary/BST_MakeSubClass
-
- NAME
- BST_MakeSubClass -- Make a Beast subclass. (V1 Alpha)
-
- SYNOPSIS
- Result = BST_MakeSubClass( ClassID, InstanceSize, SuperClass )
- D0 A0 D0 A1
-
- FUNCTION
- The same function as BST_MakeClass, only now this class is a subclass
- of 'SuperClass'. This superclass _must_ be added to the system, because
- at least 1 object is created of this class.
-
- INPUTS
- ClassID - Class ID, pointer to public-name.
- InstanceSize - The private class datasize in bytes.
- SuperClass - The name of the SuperClass.
-
- RESULT
- Result - The created sub class
-
- SEE ALSO
- BST_FreeClass, BST_AddClass, BST_MakeClass
-
-
- BeastLibrary/BST_NextTagItem
-
- NAME
- BST_NextTagItem -- (V1 Alpha)
-
- SYNOPSIS
- Result = BST_NextTagItem( tagList )
- D0,A0 A0
- struct TagItem *BST_NextTagItem( struct TagItem * );
-
- FUNCTION
- Similar function as the one in the utility.library, only this
- takes care about some BEAST tags.
-
- RESULT
- Result - Pointer to the new position.
- =NULL when end of TagList
-
-
- BeastLibrary/BST_RemoveClass
-
- NAME
- BST_RemoveClass -- Remove a Beast class from the class list. (V1 Alpha)
-
- SYNOPSIS
- BST_RemoveClass( Class )
- A0
- void BST_RemoveClass( struct BST_Class * );
-
- FUNCTION
- Unlink the Beast class from the list.
-
- INPUTS
- Class - Pointer to the class.
-
- SEE ALSO
- BST_AddClass, BST_FreeClass
-
-
- BeastLibrary/CLSS_AddMethod
-
- NAME
- CLSS_AddMethod -- Add a Method to a class. (V1 Alpha)
-
- SYNOPSIS
- Result = CLSS_AddMethod( Class, MethodStart, Method_ID )
- D0 A0 A1 D0
- struct BST_Class CLSS_AddMethod( struct BST_Class *, ULONG *, BST_Method );
-
- FUNCTION
- Add a method to a class, every method may have several method-routines.
- The Beast system has a large number of pre-defined method ID's.
- There are a number of free slots for local methods. Please consider
- very carefully when using local methods ID. Those are not supported
- among other classes. Also _NEVER_ use method delegation (MTHF_DOPARENTS,
- MTHF_DOCHILDREN..etc..) when using local methods. In the BEAST OO system
- objects are _never_ sure who parents or children are, even if you add them
- yourself.
- Free slots for local method ID's:
- OBM_local0 = 0x00000040 - 0x0000007F
- OBM_local1 = 0x00000100 - 0x000007FF
- OBM_local2 = 0x00004000 - 0x00004FFF
- OBM_local3 = 0x00100000 - 0x001FFFFF
-
- The method ID's with the lowest number have the highest priority. In
- V1 Alpha the priority is not yet implemented, but it will be in the future.
-
- INPUTS
- Class - Pointer to the class.
- MethodStart - The start of the method routine.
- Method_ID - The Method_ID number.
-
- RESULT
- Result - =NULL when Error.
- <>NULL Class.
-
- SEE ALSO
- CLSS_DisposeMethod
-
-
- BeastLibrary/CLSS_DisposeMethod
-
- NAME
- CLSS_DisposeMethod -- Dispose a Method from a class. (V1 Alpha)
-
- SYNOPSIS
- CLSS_DisposeMethod( Class, MethodStart, Method_ID )
- A0 A1 D0
- void CLSS_DisposeMethod( struct BST_Class *, ULONG *, BST_Method );
-
- FUNCTION
- Remove the method from the class.
-
- INPUTS
- Class - Pointer to the class.
- MethodStart - Start of the method routine.
- Method_ID - Method ID number
-
- SEE ALSO
- CLSS_AddMethod
-
-
- BeastLibrary/CLSS_FindMethod
-
- NAME
- CLSS_FindMethod -- Find a Method in a class. (V1 Alpha)
-
- SYNOPSIS
- Result = CLSS_FindMethod( Class, Method_ID )
- D0,A0 A0 D0
- struct class_MethodList *CLSS_FindMethod( struct BST_Class *, BST_Method );
-
- FUNCTION
- Search for a certain method ID.
-
- INPUTS
- Class - Pointer to the class.
- Method_ID - Method ID number.
-
- RESULT
- Result - Pointer to found CLSS_MethodList or NULL when the method
- is not found.
-
-
- BeastLibrary/OBJ_CreateConnection
-
- NAME
- OBJ_CreateConnection -- Create a connection between two methods. (V1 Alpha)
-
- SYNOPSIS
- Result = OBJ_CreateConnection( FromObject, ToObject, FromMethod, ToMethod )
- D0 A0 A1 D0 D1
- struct obj_OutputLink *OBJ_CreateConnection( struct BST_Object *, struct BST_Object *, BST_Method, BST_Method );
-
- FUNCTION
- Create a connection between two objects. Every Method can be connected to any
- other method. Connections between objects running at the same task will be
- a direct connection. When connecting to object of different task the routine
- will insert an intermediair (not implemented in V1 Alpha). The same when connecting
- between two objects at two different computer systems.
- A connection can have multiple inputs and outputs. But a things must be take into
- consideration. When a 'FromMethod' is connected to several other methods the
- TagList (which is the data) is shared among the connected objects, which means
- that if the first object changes something in the TagList, the others will also
- see it.
-
- INPUTS
- FromObject - Pointer to the 'From' object.
- ToObject - Pointer to the 'To' object
- FromMethod - The Method ID number of the FromObject.
- ToMethod - The Method ID number of the ToObject.
-
- RESULT
- Result - 0 = An error has occured. Also when FromObject or ToObject
- is zero. Otherwise, pointer to the obj_OutputLink.
-
- A double linked connection is created, an OIL_Connection
- and an OOL_Connection structure.
-
- SEE ALSO
- OBJ_RemoveConnection
-
-
- BeastLibrary/OBJ_DestroyObject
-
- NAME
- OBJ_DestroyObject -- Destroy an object. (V1 Alpha)
-
- SYNOPSIS
- OBJ_DestroyObject( Object, MethodFlags )
- A0 D3
- struct BST_Object *OBJ_DestroyObject( struct BST_Object *, BST_MethodFlags );
-
- FUNCTION
- This function combines a OBM_DISPOSE method with a OBJ_DisposeObject
- call.
-
- INPUTS
- Object - Pointer to the object to be destroyed.
- MethodFlags - MTHF_DOCHILDREN will be added by the function!!
-
- SEE ALSO
- OBJ_DoMethod, OBJ_DisposeObject
-
-
- BeastLibrary/OBJ_DisposeObject
-
- NAME
- OBJ_DisposeObject -- Dispose an object. (V1 Alpha)
-
- SYNOPSIS
- OBJ_DisposeObject( Object )
- A0
- void OBJ_DisposeObject( struct BST_Object * );
-
- FUNCTION
- Dispose this object AND all it's children.
-
- INPUTS
- Object - The object to be disposed. May be NULL.
-
- RESULT
- This object AND the children objects are disposed.
-
- NOTES
- This function will NOT perform an OBM_DISPOSE method.
-
- SEE ALSO
- OBJ_NewObject, OBJ_DestroyObject
-
-
- BeastLibrary/OBJ_DoMethod
-
- NAME
- OBJ_DoMethod -- Perform a method on a object. (V1 Alpha)
-
- SYNOPSIS
- Result = OBJ_DoMethod( Object, Method_ID, TagList, MethodFlags )
- A0 D0 A1 D3
- BST_MethodFlags OBJ_DoMethod( struct BST_Object *, BST_Method, struct TagItem *, BST_MethodFlags );
-
- FUNCTION
- Trigger a method on a certain object.
-
- INPUTS
- Object - Pointer to the object (may NULL).
- Method_ID - Method ID number.
- TagList - Pointer to the TagList used by the Method routine.
- MethodFlags - Special method flags;
- See the Beast:Docs/Beast_OO/Methods.doc
-
- RESULT
- Result = The new method flags
-
- Method call with the following registers set;
- D2 = Method_ID
- D3 = MethodFlags
- A2 = Object
- A3 = TagList
-
- As a result the method must deliver the new MethodFlags in d0.
- Besides the discussed MethodFlags (INPUTS) there are some more;
- See the Beast:Docs/Beast_OO/Methods.doc
-
- SEE ALSO
- OBJ_MethodToParent, OBJ_MethodToChildren
-
-
- BeastLibrary/OBJ_FromInput
-
- NAME
- OBJ_FromInput -- Trigger methods connections to an input. (V1 Alpha)
-
- SYNOPSIS
- OBJ_FromInput( Object, InputMethod, MethodFlags, TagList )
- A0, D0 D3 A1
- BST_MethodFlags OBJ_FromInput( struct BST_Object *, BST_Method, BST_MethodFlags, struct TagItem * );
-
- FUNCTION
- Request input from the method 'InputMethod', this will trigger ( if
- connected ) a method at the object connected to the 'InputMethod'.
-
- INPUTS
- Object - Pointer to the object.
- InputMethod - The input method number.
- MethodFlags - The Method flags, see OBJ_DoMethod.
- TagList - The TagList put to the input/output-methods of the
- connection.
-
- SEE ALSO
- OBJ_ToOutput, OBJ_CreateConnection
-
-
- BeastLibrary/OBJ_MethodToChildren
-
- NAME
- OBJ_MethodToChildren -- Delegate the method to the children. (V1 Alpha)
-
- SYNOPSIS
- Result = OBJ_MethodToChildren( Object, Method_ID, TagList, MethodFlags )
- A0 D0 A1 D3
-
- FUNCTION
- See DoMethod for full description.
- This function pass the method to the children. This is used in a method
- definition when the MTHF_PASSTOCHILD flag is set.
-
- INPUTS
- Object - Pointer to the object (may NULL).
- Method_ID - Method ID number.
- TagList - Pointer to the TagList used by the Method routine.
- MethodFlags - Special method flags;
-
- RESULT
- Result = The new method flags
-
- Method call with the following registers set;
-
- D2 = Method_ID
- D3 = MethodFlags
- A2 = Object
- A3 = TagList
-
- As a result the method must deliver the new MethodFlags in d0.
-
- NOTES
-
- SEE ALSO
- OBJ_DoMethod
-
-
- BeastLibrary/OBJ_MethodToParent
-
- NAME
- OBJ_MethodToParent -- Delegate the method to the parent. (V1 Alpha)
-
- SYNOPSIS
- Result = OBJ_MethodToParent( Object, Method_ID, TagList, MethodFlags )
- A0 D0 A1 D3
- BST_MethodFlags OBJ_MethodToParent( struct BST_Object *, BST_Method, struct TagItem *, BST_MethodFlags );
-
- FUNCTION
- See DoMethod for full description.
- This function pass the method to the parent. In this way the method won't
- be triggered at the caller object. Remember to set the MTHF_DOPARENTS flags
- the method should be delegated to other parents as well.
-
- INPUTS
- Object - Pointer to the object (may NULL).
- Method_ID - Method ID number.
- TagList - Pointer to the TagList used by the Method routine.
- MethodFlags - Special method flags;
-
- RESULT
- Result = The new method flags
-
- Method call with the following registers set;
-
- D2 = Method_ID
- D3 = MethodFlags
- A2 = Object
- A3 = TagList
-
- As a result the method must deliver the new MethodFlags in d0.
-
- SEE ALSO
- OBJ_DoMethod
-
-
- BeastLibrary/OBJ_NewObject
-
- NAME
- OBJ_NewObject -- Create a new object. (V1 Alpha)
-
- SYNOPSIS
- Result = OBJ_NewObject( Class, Class_ID, Parent )
- D0 A0 A1 D0
- struct BST_Object *OBJ_NewObject( struct BST_Class *, char *, struct BST_Object * );
-
- FUNCTION
- Create a new object. The object is added 'under' the Parent. In version
- V1 Alpha multiple parents are not supported. If the Parent is null the
- object is added under the Beast root, or when the Beast FileSystem is
- available it's added under the UserClass.
-
- INPUTS
- Class - Pointer to an already known class (private class)
- NULL if not used. (normally NULL).
- Class_ID - Pointer to the name of the public class.
- Parent - Pointer to the parent object or NULL.
-
- RESULT
- Result - Pointer to created object. NULL if the object could
- not be added.
-
- SEE ALSO
- OBJ_DisposeObject
-
-
- BeastLibrary/OBJ_RemoveConnection
-
- NAME
- OBJ_RemoveConnection -- (V1 Alpha)
-
- SYNOPSIS
- OBJ_RemoveConnection( OxL_Connection )
- A1
- void OBJ_RemoveConnection( struct obj_OutputLink * );
-
- FUNCTION
- Remove a created OIL_Connection or OOL_Connection.
-
- INPUTS
- OxL_Connection - Pointer to an OIL/OOL_Connection.
-
- RESULT
- The OIL_Connection and OOL_Connection structures are destroyed.
-
- SEE ALSO
- OBJ_CreateConnection
-
-
- BeastLibrary/OBJ_ToOutput
-
- NAME
- OBJ_ToOutput -- Trigger methods connections to an output. (V1 Alpha)
-
- SYNOPSIS
- Result = OBJ_ToOutput( Object, TagList, OutputMethod, MethodFlags )
- A0 A1 D0 D3
- BST_MethodFlags OBJ_ToOutput( struct BST_Object *, struct TagItem *, BST_Method, BST_MethodFlags );
-
- FUNCTION
- 'Output' the TagList (A1) to the connected input, the used output
- is the OutputMethod (D0). The object is triggered which is connected
- to 'Object' at MethodID 'OutputMethod'.
-
- INPUTS
- Object - Pointer to the object.
- TagList - The TagList put to the input/output-method of the
- connection.
- OutputMethod - The output method ID.
- MethodFlags - The Method flags, see OBJ_DoMethod.
-
- RESULT
- Result = The new methodflags.
-
- SEE ALSO
- OBJ_FromInput, OBJ_CreateConnection, OBJ_DoMethod
-
-
-